package com.ruoyi.logistics.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 物流追踪对象 qc_logistics_tracking
 *
 * @author ruoyi
 * @date 2025-05-24
 */

@ExcelIgnoreUnannotated
public class QcLogisticsTracking extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long id;

    /**
     * Shipment ID
     */
    @Excel(name = "Shipment ID")
    @ExcelProperty(value = "Shipment ID")
    private String shipmentId;

    /**
     * 账号标记
     */
    @Excel(name = "账号标记")
    @ExcelProperty(value = "账号标记")
    private String account;

    /**
     * 发货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "发货日期")
    @Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sendDate;

    /**
     * 体积重除数
     */
    @Excel(name = "体积重除数")
    @ExcelProperty(value = "体积重除数")
    private String volumeRatio;

    /**
     * 渠道
     */
    @Excel(name = "渠道")
    @ExcelProperty(value = "渠道")
    private String channel;

    /**
     * 总箱数
     */
    @Excel(name = "总箱数")
    @ExcelProperty(value = "总箱数")
    private Integer totalBoxNum;

    /**
     * 方数
     */
    @Excel(name = "方数")
    @ExcelProperty(value = "方数")
    private BigDecimal squareNum;

    /**
     * 重量
     */
    @Excel(name = "重量")
    @ExcelProperty(value = "重量")
    private BigDecimal weight;

    /**
     * units
     */
    @Excel(name = "units")
    @ExcelProperty(value = "units")
    private Integer units;

    /**
     * 货值
     */
    @Excel(name = "货值")
    @ExcelProperty(value = "货值")
    private BigDecimal price;

    /**
     * 仓库代号
     */
    @Excel(name = "仓库代号")
    @ExcelProperty(value = "仓库代号")
    private String warehouseCode;

    /**
     * 实际物流运费（rmb）
     */
    @Excel(name = "实际物流运费", readConverterExp = "r=mb")
    @ExcelProperty(value = "实际物流运费（rmb）")
    private BigDecimal logisticsPrice;

    /**
     * 平均单价（CBM）
     */
    @Excel(name = "平均单价", readConverterExp = "C=BM")
    @ExcelProperty(value = "平均单价（CBM）")
    private BigDecimal aveUnitPrice;

    /**
     * 开船日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开船日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ExcelProperty(value = "开船日期")
    private Date sailDate;

    /**
     * 到港日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到港日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ExcelProperty(value = "到港日期")
    private Date arrivalDate;

    /**
     * 签收时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ExcelProperty(value = "签收时间")
    private Date signForDate;

    /**
     * 时效
     */
    @Excel(name = "时效")
    @ExcelProperty(value = "时效")
    private Integer ageing;

    /**
     * 运单号
     */
    @Excel(name = "运单号")
    @ExcelProperty(value = "运单号")
    private String waybillNum;

    /**
     * 付款状态 1-已付款 2-未付款
     */
    @Excel(name = "付款状态 1-已付款 2-未付款")
    @ExcelProperty(value = "付款状态 1-已付款 2-未付款")
    private Integer paymentStatus;

    /**
     * 船名
     */
    @Excel(name = "船名")
    @ExcelProperty(value = "船名")
    private String shipsName;

    /**
     * 上架数量
     */
    @Excel(name = "上架数量")
    @ExcelProperty(value = "上架数量")
    private Integer groundingNum;

    /**
     * 删除状态 0-未删除 1-已删除
     */
    private Integer isDelete;

    /**
     * 状态 1-已完结 2-未完结
     */
    @Excel(name = "状态 1-已完结 2-未完结")
    @ExcelProperty(value = "状态 1-已完结 2-未完结")
    private Integer status;

    /**
     * 创建人ID
     */
    private Long createUserId;

    /**
     * 创建人名称
     */
    private String createUserName;

    /**
     * 更新人ID
     */
    private Long updateUserId;

    /**
     * 更新人ID
     */
    private String updateUserName;
    /**
     * 是否同步ES  1-是 2-否
     */
    private Integer isEs;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setShipmentId(String shipmentId) {
        this.shipmentId = shipmentId;
    }

    public String getShipmentId() {
        return shipmentId;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getAccount() {
        return account;
    }

    public void setSendDate(Date sendDate) {
        this.sendDate = sendDate;
    }

    public Date getSendDate() {
        return sendDate;
    }

    public void setVolumeRatio(String volumeRatio) {
        this.volumeRatio = volumeRatio;
    }

    public String getVolumeRatio() {
        return volumeRatio;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getChannel() {
        return channel;
    }

    public void setTotalBoxNum(Integer totalBoxNum) {
        this.totalBoxNum = totalBoxNum;
    }

    public Integer getTotalBoxNum() {
        return totalBoxNum;
    }

    public void setSquareNum(BigDecimal squareNum) {
        this.squareNum = squareNum;
    }

    public BigDecimal getSquareNum() {
        return squareNum;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setUnits(Integer units) {
        this.units = units;
    }

    public Integer getUnits() {
        return units;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setLogisticsPrice(BigDecimal logisticsPrice) {
        this.logisticsPrice = logisticsPrice;
    }

    public BigDecimal getLogisticsPrice() {
        return logisticsPrice;
    }

    public void setAveUnitPrice(BigDecimal aveUnitPrice) {
        this.aveUnitPrice = aveUnitPrice;
    }

    public BigDecimal getAveUnitPrice() {
        return aveUnitPrice;
    }

    public void setSailDate(Date sailDate) {
        this.sailDate = sailDate;
    }

    public Date getSailDate() {
        return sailDate;
    }

    public void setArrivalDate(Date arrivalDate) {
        this.arrivalDate = arrivalDate;
    }

    public Date getArrivalDate() {
        return arrivalDate;
    }

    public void setSignForDate(Date signForDate) {
        this.signForDate = signForDate;
    }

    public Date getSignForDate() {
        return signForDate;
    }

    public void setAgeing(Integer ageing) {
        this.ageing = ageing;
    }

    public Integer getAgeing() {
        return ageing;
    }

    public void setWaybillNum(String waybillNum) {
        this.waybillNum = waybillNum;
    }

    public String getWaybillNum() {
        return waybillNum;
    }

    public void setPaymentStatus(Integer paymentStatus) {
        this.paymentStatus = paymentStatus;
    }

    public Integer getPaymentStatus() {
        return paymentStatus;
    }

    public void setShipsName(String shipsName) {
        this.shipsName = shipsName;
    }

    public String getShipsName() {
        return shipsName;
    }

    public void setGroundingNum(Integer groundingNum) {
        this.groundingNum = groundingNum;
    }

    public Integer getGroundingNum() {
        return groundingNum;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setCreateUserId(Long createUserId) {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setUpdateUserId(Long updateUserId) {
        this.updateUserId = updateUserId;
    }

    public Long getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }

    public String getUpdateUserName() {
        return updateUserName;
    }

    public Integer getIsEs() {
        return isEs;
    }

    public void setIsEs(Integer isEs) {
        this.isEs = isEs;
    }

    @Override
    public String toString() {
        return "QcLogisticsTracking{" +
                "id=" + id +
                ", shipmentId='" + shipmentId + '\'' +
                ", account='" + account + '\'' +
                ", sendDate=" + sendDate +
                ", volumeRatio='" + volumeRatio + '\'' +
                ", channel='" + channel + '\'' +
                ", totalBoxNum=" + totalBoxNum +
                ", squareNum=" + squareNum +
                ", weight=" + weight +
                ", units=" + units +
                ", price=" + price +
                ", warehouseCode='" + warehouseCode + '\'' +
                ", logisticsPrice=" + logisticsPrice +
                ", aveUnitPrice=" + aveUnitPrice +
                ", sailDate=" + sailDate +
                ", arrivalDate=" + arrivalDate +
                ", signForDate=" + signForDate +
                ", ageing=" + ageing +
                ", waybillNum='" + waybillNum + '\'' +
                ", paymentStatus=" + paymentStatus +
                ", shipsName='" + shipsName + '\'' +
                ", groundingNum=" + groundingNum +
                ", isDelete=" + isDelete +
                ", status=" + status +
                ", createUserId=" + createUserId +
                ", createUserName='" + createUserName + '\'' +
                ", updateUserId=" + updateUserId +
                ", updateUserName='" + updateUserName + '\'' +
                ", isEs=" + isEs +
                '}';
    }
}
